By Jim Kuzma, Contributing Writer, KOOZ@CompuServe.COM
(...continued)
The Sinclair was the first really affordable personal computer for the masses. Selling for around a hundred dollars complete, it had a membrane keypad for hands the size of a one-month old, black and white RF modulated out to a TV set, a decent power supply (many of which I still use today), audio cables for using a cheap tape recorder to save Basic programs, and a whopping 1K of internal ram, expandable with an insane 16K plug-in unit with its very own reference in the manual's index under "glitch". Why anyone would want this piece o' plastic and subject themselves to the torture of padding in a whole program and sweating the load command for 10 minutes, praying for a (0,0) was no mystery... it was YOUR cpu and all the cycles were yours. Never mind that you still couldn't balance your checkbook because the math routines gave you a balance of .0000001 cents, or that the misnomered "fast mode" made you wonder if there were squirrels inside counting on their claws.
It had its fascination, though. That rear connector had most of the pins of the Z80 processor brought out to the outside world to abuse. I voided the warrantee as soon as it was out of the box (as is traditional with nearly everything I've ever owned), and it didn't take long to add an external keyboard with an array of FET's plugged onto the side of the body, and a secondhand keypunch keyboard with all the Sinclair symbols epoxied into the tops of the keys. A ram scoop was protruding from the top of the hood with a stack of 8 static ram chips soldered together on top of each other with the chip select wires sticking out. An old Ball monitor had to have a sync stripper added to get it to work, and a BNC video emitter-follower out of the Sinclair, but at least the TV set was freed up. The height of insanity of add-ons was reached when Dave Jones and I added internal circuitry to each of our Sinclairs that took the audio signal from the cassette port, remodulated it, and capacitively coupled it to the telephone lines so that we could transmit programs back and forth with one guy hitting "save" and the other guy hitting "load". The first time that worked was a true techno-rush. By this time, there wasn't a cubic millimeter of space left inside the chassis, and it was getting more than a little warm in there.
The world of software was finally opening up to me, but down in the dirt, not up in the clouds. This was a Z80, one of the most advanced processors of its time, with powerful 16-bit addressing and block move instructions. When I wrote my first line of machine code that moved a string into video display memory, I can still remember the gasp when it happened. It was so blazing fast that it was impossible to time. Data was moving around at hundreds of thousands of bytes per second. The love-hate relationship with computers was consummated. The hate part was that code had to be assembled by hand from the opcode charts, and then painstakingly poked a byte at a time into a basic rem statement by hand:
poke 16514, 205 etc.
Books were coming out with hooks into the basic rom for functions, and system variables were revealed. Grandiose schemes of relocatable code and an operating system were dreamed up. The character space could be repointed to ram, and allowed a programmable character set. Asteroids was written by Dave with a real rocket, bullets, and rocks. Since we were both circuit designers, and were still laying out boards with "tape-up", thin strips of opaque crepe tape stuck by hand to clear plastic sheets at four-to-one scale and donut pads for chips and discretes, and going blind doing it, the dream of CAD layout seemed doable. But I was more fascinated with this I/O thing.
You see, Dave had come up with this standard of interfacing to computers by using address, data, and memory read and write lines called GPIO. Most machines were writing to ports with specific I/O instructions, limited to in and out. Once memory address space was mapped to I/O, the whole power of memory-based instructions could be applied to external hardware, including block moves and bit manipulation instructions. Instead of an I/O in, an operation, and an I/O out for every operation, things could be directly done with one instruction, like increment the port. Decoding memory was a little more circuitry, but the advantages were huge. Since all the necessary CPU busses were available on the back of the Sinclair, we had blazing fast I/O in a matter of days. 'LS374's and 'LS244's were being wired up like popcorn, and I remember hooking up a 7 segment LED character driver, and incrementing the location so fast that it just glowed "8" with some segments a little brighter than others. Dreams of personal X-Y tables and CNC's producing some widget 24 hours a day, a tireless robot making me rich without lifting a finger was the irrational goal.
I was still an analog circuit designer at heart, and that skill got me hooked up with John Bates, who needed a better front end for his signal processor for speech recognition. I blew his mind by using the Sinclair to sample and display in video his output data at over 100 thousand samples/sec. That got me a job in his corporation for the next 6 years, but that's another story. We acquired a Teletek S100 bus Z80 CP/M system with 8-inch floppy drives and a serial terminal. It had an editor called ED, a debugger called DDT, a Z80 assembler called M80, a linker called L80, and some dinky company called Microsoft's Basic interpreter called MBASIC. There was a lot of CP/M code in the world because the operating system was popular, and it was portable to various systems because of the magic of BIOS. No matter what disk or terminal hardware you had, a BIOS call would get the same results. A GPIO with an A-to-D converter got us audio sampling, and we called this Teletek our mainframe. It weighed enough to qualify. It was prone to crashing at the slightest sneeze, and notes were pasted all over the office to not turn on or off the lights or the fan when the Teletek was being used, or blood-curdling screams would inevitably result. You backed up your work as soon as your internal anxiety timer went off if you were smart, about every ten minutes. The big red button would honk the machine and get you a new prompt no matter how bad you crashed it. The boot would take about one second. Ah, for the good ol' days.
But then the world was royally screwed forever by IBM and Intel. Enter the XT.
(to be continued...)